<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>throw语句</title>
</head>

<!-- throw 语句允许我们创建自定义错误。
正确的技术术语是：创建或抛出异常（exception）。
如果把 throw 与 try 和 catch 一起使用，那么您能够控制程序流，并生成自定义的错误消息。 -->

<!-- 本例检测输入变量的值。如果值是错误的，会抛出一个异常（错误）。catch 会捕捉到这个错误，并显示一段自定义的错误消息 -->

<body>
    <p>请输出一个 5 到 10 之间的数字:</p>

    <input id="demo" type="text">
    <button type="button" onclick="myFunction()">测试输入</button>
    <p id="message"></p>

    <script>
        function myFunction() {
            var message, x;
            message = document.getElementById("message");
            message.innerHTML = "";
            x = document.getElementById("demo").value;
            try {
                if (x == "") throw "值为空";
                if (isNaN(x)) throw "不是数字";
                x = Number(x);
                if (x < 5) throw "太小";
                if (x > 10) throw "太大";
            }
            catch (err) {
                message.innerHTML = "错误: " + err;
            }
        }
    </script>
</body>

</html>